//给你一个长度为 n 的整数数组
// nums ，请你判断在 最多 改变 1 个元素的情况下，该数组能否变成一个非递减数列。 
//
// 我们是这样定义一个非递减数列的： 对于数组中任意的 i (0 <= i <= n-2)，总满足 nums[i] <= nums[i + 1]。 
//
// 
//
// 示例 1: 
//
// 
//输入: nums = [4,2,3]
//输出: true
//解释: 你可以通过把第一个 4 变成 1 来使得它成为一个非递减数列。
// 
//
// 示例 2: 
//
// 
//输入: nums = [4,2,1]
//输出: false
//解释: 你不能在只改变一个元素的情况下将其变为非递减数列。
// 
//
// 
//
// 提示： 
// 
//
// 
// n == nums.length 
// 1 <= n <= 10⁴ 
// -10⁵ <= nums[i] <= 10⁵ 
// 
//
// Related Topics 数组 👍 746 👎 0


package leetcode.editor.cn;

/**
 * 非递减数列
 * @date 2023-05-22 10:06:23
 */
class P665_NonDecreasingArray{
	 public static void main(String[] args) {
	 	 //测试代码
	 	 Solution solution = new P665_NonDecreasingArray().new Solution();
	 }
	 
//力扣代码
//leetcode submit region begin(Prohibit modification and deletion)
class Solution {
    public boolean checkPossibility(int[] nums) {
		if(nums == null || nums.length == 0)
			return true;
		int cnt = 0;
		for (int i = 1; i < nums.length && cnt < 2; i++) {
			if(nums[i-1] <= nums[i])
				continue;
			if(i-2 >= 0 && nums[i-2] > nums[i]){
				nums[i] = nums[i-1];
			}else{
				nums[i-1] = nums[i];
			}
			cnt++;
		}
		return cnt<=1;
    }
}
//leetcode submit region end(Prohibit modification and deletion)

}
